package blbetter.netze;

import neuralNetworks.Functions;
import blbetter.db.BLDataBase;
import blbetter.db.Spiel;

public class BlBetterNetV3 extends BlBetterNet {

	private static final long serialVersionUID = -254048523575008226L;

	public int X, Y, Z;

	public BlBetterNetV3(int X, int Y, int Z, int[] hiddenNeurons,
			Functions actF, double lr) {
		super(hiddenNeurons, actF, lr);
		this.X = X;
		this.Y = Y;
		this.Z = Z;
	}

	@Override
	protected int getAnzInputNeurons() {
		// input infos
		// pktedurchs. der letzt X Sp. der teams (0-3)-> 2*1=2 neuronen
		// pktedurchs. der letzt Y Sp. ab X der teams (0-3)-> 2*1=2 neuronen
		// pktedurchs. der letzten Z Sp. ab X+Y der teams (0-3)-> 2*1=2 neuronen
		// durchs. Tore letzt X Sp. (beide Teams)(0-3)-> 2*1=2 neuronen
		// durchs. Tore letzt Y ab X Sp. (beide Teams)(0-3)-> 2*1=2 neuronen
		// durchs. Tore letzt Z ab X+Y Sp. (beide Teams)(0-3)-> 2*1=2 neuronen
		// durchs. Geg-Tore letzt X Sp. (beide Teams)(0-3)-> 2*1=2 neuronen
		// durchs. Geg-Tore letzt Y ab X Sp. (beide Teams)(0-3)-> 2*1=2 neuronen
		// drch. Geg-Tore letzte Z ab X+Y Sp. (beid Teams)(0-3)-> 2*1=2 neuronen
		// spieltag (19-34) -> 4 neuronen
		// tabellenplaetze (1-18) -> 2*1=2 neuronen
		// -----------------------
		// insgesamt: 24 neuronen

		return 24;
	}

	@Override
	public BlBetterInputSit getInputSit(Spiel spiel, BLDataBase db) {
		// System.out.println(X + "," + Y + "," + Z);
		return new BlBetterInputSitV3(spiel, X, Y, Z, db);
	}

}
